With the development of digital technology and popularization of high-speed Internet service in recent years, a variety of works which were manually performed have been replaced with computing works. For example, a user can edit desired documents in various forms using a tool such as a word-processor or a work sheet to improve time and working efficiency.
A conventional host computer includes hardware having a control processor, a memory, an input/output interface and a communication interface, an operating system for managing and controlling a system based on the hardware, and an application program for executing designated specific functions under the operating system. A user initializes the hardware and the operating system of the host computer, executes the specific application program and carries out a desired work using various functions provided by the executed application program.
When the user wants to suspend a predetermined work performed in the host computer using a specific application and then continue the work with data of the work using another host computer, an application program capable of supporting the work, for example, an application program identical to the specific application program or an application program providing the same function as the specific application program, must be installed in the other host computer.
If the application program capable of supporting the work does not exist in the other host computer, the user should obtain an installation CD or file and install files required to support the work in the host computer through an application installation process. Furthermore, it may be required to delete the installed files for security maintenance after the work is finished.
In this case, however, a time is required for the user to newly install the application program in the host computer and then delete the application program, which is inconvenient for the user. This problem becomes serious as the number of host computers used by the user increases. Furthermore, when the host computer by which the user newly performs a work is a commonly used computer or a computer owned by another person, a disk storage space may be unnecessarily consumed and, even though the user executes an application program and then deletes the application program, remnants of the application program may be left or spyware may remain in the host computer.
Accordingly, various techniques have been developed in order to solve the aforementioned problems. One of the techniques is a virtual application creating tool. The virtual application creating tool is a software tool that virtualizes applications and packages the virtualized applications to create a single portable program. That is, the virtual application creating tool creates a portable program from applications. Virtual application creating tools currently being on the market include Thinstall, Autolt Macro Script, Auto Batch File and so on.
To package a specific application, the virtual application creating tool performs pre-scan for scanning the image of the window of a host computer, installs the application in the host computer through install software, and then carries out post-scan for scanning the image of the window of the host computer after installation. Subsequently, the virtual application creating tool compares the window image obtained by the pre-scan with the window image obtained by the post-scan to detect variations in the system, which are caused by the installation of the application, and creates an execution file that can be independently executed, that is, a virtual application program.
Accordingly, the user can copy the created execution file to a portable external storage unit, for example, a USB (Universal Serial Bus) storage device, connect the external storage unit to another host computer and execute the execution file to perform a desired work. As described above, the virtual application creating tool can make application programs portable.
However, conventional virtual application creating techniques have serious problems in spite of the aforementioned advantages.
Firstly, the conventional virtual application creating tools have an image comparison algorithm according to pre-scan and post-scan, and thus packaging accuracy is deteriorated and an error generation rate is high. Furthermore, due to this problem, perfect software having an application desired by a user and only objects related to the application cannot be created.
An operating system such as Windows simultaneously executes many processes, for example, daemon processes, with application programs. In this case, files may be frequently created and modified in a specific daemon process while an application that a user wants to virtualize is installed using an application installation program in the Windows. The creation and modification of files affect image comparison because unnecessary files can be stored in an image file. In practical, the conventional virtual application creating tools have a considerably high error generation rate when creating virtual applications.
Secondly, the conventional virtual application creating tools require excessively large number of complicated processes to create a virtual application. For example, the conventional virtual application creating tools must perform pre-scan and post-scan in order to create a virtual application and a user should delete unnecessary files one by one in order to reduce errors in image comparison. Accordingly, a long time is needed and it is difficult for a novice to create a virtual application.
Thirdly, when the same application as the application to be virtualized is previously installed in a host computer, the application previously installed in the host computer may be deleted while the virtual application is installed through a virtual application creating tool.